FROM python:3.12-slim AS base
WORKDIR /app
COPY ./src/{{cookiecutter.__service_name_snake}}/requirements.txt /app/requirements.txt
RUN pip install --no-cache-dir -r /app/requirements.txt
COPY ./src/{{cookiecutter.__service_name_snake}} /app/{{cookiecutter.__service_name_snake}}
RUN adduser --system --no-create-home appuser
USER appuser
ENV PORT={{ cookiecutter.port }}
HEALTHCHECK --interval=10s --timeout=3s --start-period=10s --retries=3 \
    CMD python -c "import urllib.request; urllib.request.urlopen('http://localhost:${PORT}/_info/health')" || exit 1
CMD exec uvicorn {{cookiecutter.__service_name_snake}}:build_app --factory --host 0.0.0.0 --port ${PORT}
